#!/usr/bin/env node
/**
 * 测试中文 front-matter 搜索功能
 */

const { StructuredSearchService } = require('./build/structured-search.js');

async function testChineseSearch() {
  console.log('测试中文 Front-matter 搜索功能');
  console.log('================================\n');
  
  const searchService = new StructuredSearchService();
  
  // 测试1: 搜索中文标题
  console.log('测试1: 搜索中文标题关键词 "人工智能"');
  try {
    const results1 = await searchService.searchByMetadata('人工智能');
    console.log(`找到 ${results1.length} 个结果:`);
    results1.forEach((result, index) => {
      console.log(`  ${index + 1}. ${result.filePath}`);
      console.log(`     标题: ${result.metadata.标题 || result.metadata.title || '未知'}`);
    });
  } catch (error) {
    console.error('搜索失败:', error.message);
  }
  
  console.log('\n---\n');
  
  // 测试2: 搜索中文分类
  console.log('测试2: 搜索中文分类 "技术"');
  try {
    const results2 = await searchService.searchByMetadata('技术');
    console.log(`找到 ${results2.length} 个结果:`);
    results2.forEach((result, index) => {
      console.log(`  ${index + 1}. ${result.filePath}`);
      console.log(`     分类: ${result.metadata.分类 || result.metadata.category || '未知'}`);
    });
  } catch (error) {
    console.error('搜索失败:', error.message);
  }
  
  console.log('\n---\n');
  
  // 测试3: 搜索中文标签
  console.log('测试3: 搜索中文标签 "机器学习"');
  try {
    const results3 = await searchService.searchByMetadata('机器学习');
    console.log(`找到 ${results3.length} 个结果:`);
    results3.forEach((result, index) => {
      console.log(`  ${index + 1}. ${result.filePath}`);
      console.log(`     标签: ${JSON.stringify(result.metadata.标签 || result.metadata.tags || [])}`);
    });
  } catch (error) {
    console.error('搜索失败:', error.message);
  }
  
  console.log('\n---\n');
  
  // 测试4: 中英文混合搜索
  console.log('测试4: 中英文混合搜索 "AI 技术"');
  try {
    const results4 = await searchService.searchByMetadata('AI 技术');
    console.log(`找到 ${results4.length} 个结果:`);
    results4.forEach((result, index) => {
      console.log(`  ${index + 1}. ${result.filePath}`);
    });
  } catch (error) {
    console.error('搜索失败:', error.message);
  }
  
  console.log('\n---\n');
  
  // 测试5: 特定字段搜索
  console.log('测试5: 特定字段搜索 - 搜索标题字段中的"指南"');
  try {
    const results5 = await searchService.searchBySpecificFields({
      '标题': '指南'
    });
    console.log(`找到 ${results5.length} 个结果:`);
    results5.forEach((result, index) => {
      console.log(`  ${index + 1}. ${result.filePath}`);
      console.log(`     标题: ${result.metadata.标题 || result.metadata.title || '未知'}`);
    });
  } catch (error) {
    console.error('搜索失败:', error.message);
  }
}

if (require.main === module) {
  testChineseSearch().catch(console.error);
}
